Tabled Higher-Order Logic Programming
نویسنده
چکیده
A logical framework is a general meta-language for specifying and implementing deductive systems, given by axioms and inference rules. Based on a higher-order logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each particular logical system. In this thesis, we describe different techniques to improve the overall performance and the expressive power of higher-order logic programming. First, we introduce tabled higher-order logic programming, a novel execution model where some redundant information is eliminated using selective memoization. This extends tabled computation to the higher-order setting and forms the basis of the tabled higher-order logic programming interpreter. Second, we present efficient data-structures and algorithms for higher-order proof search. In particular, we describe a higher-order assignment algorithm which eliminates many unnecessary occurs checks and develop higher-order term indexing. These optimizations are crucial to make tabled higher-order logic programming successful in practice. Finally, we use tabled proof search in the meta-theorem prover to reason efficiently with and about deductive systems. It takes full advantage of higher-order assignment and higher-order term indexing. As experimental results demonstrate, these optimizations taken together constitute a significant step toward exploring the full potential of logical frameworks in practice.
منابع مشابه
A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming
Higher-order logic programming languages such as Elf extend first-order logic programming in two ways: first-order terms are replaced with (dependently) typed λ-terms and the body of clauses may contain implication and universal quantification. In this paper, we describe tabled higher-order logic programming where some redundant computation is eliminated by memoizing sub-computation and re-usin...
متن کاملTabling for Higher-Order Logic Programming
We describe the design and implementation of a higher-order tabled logic programming interpreter where some redundant and infinite computation is eliminated by memoizing sub-computation and re-using its result later. In particular, we focus on the table design and table access in the higher-order setting where many common operations are undecidable in general. To achieve a space and time effici...
متن کاملFailure tabled constraint logic programming by interpolation
We present a new execution strategy for constraint logic programs called Failure Tabled CLP. Similarly to Tabled CLP our strategy records certain derivations in order to prune further derivations. However, our method only learns from failed derivations. This allows us to compute interpolants rather than constraint projection for generation of reuse conditions. As a result, our technique can be ...
متن کاملAbductive Logic Programming with Tabled Abduction
In abductive logic programming, abductive solutions are typically computed without attending to the abductive context. These abductive solutions can actually be reused in a different abductive context. In this paper, we employ a tabling mechanism and propose a tabled abduction mechanism, that consists of a transformation from abductive normal logic programs into tabled dual programs, by tabling...
متن کاملEnhancing a Genome Database Using the XSB Tabled Logic Programming System
LabBase is a generic database management system for implementation of laboratory information systems developed at the Center for Genome Research in the Whitehead Institute at MIT It has become an important community database serving biological scientists engaged in genome research Until now the language used to query LabBase has been non recursive datalog without rules Using the XSB Tabled Logi...
متن کامل